Type-Driven Equivalence